28dc9e5c031a045fa561cbddfb3fbd4b4092f6a5,plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/ReviewsMeasuresDecorator.java,ReviewsMeasuresDecorator,decorate,#Resource#DecoratorContext#,58
Before Change
// Open reviews
ReviewQuery openReviewQuery = ReviewQuery.create().setResourceId(resource.getId()).addStatus(ReviewDto.STATUS_OPEN)
.addStatus(ReviewDto.STATUS_REOPENED);
Integer openReviewsCount = reviewDao.countByQuery(openReviewQuery);
context.saveMeasure(CoreMetrics.ACTIVE_REVIEWS, openReviewsCount.doubleValue());
// Unassigned reviews
ReviewQuery unassignedReviewQuery = ReviewQuery.copy(openReviewQuery).setNoAssignee();
Integer unassignedReviewsCount = reviewDao.countByQuery(unassignedReviewQuery);
context.saveMeasure(CoreMetrics.UNASSIGNED_REVIEWS, unassignedReviewsCount.doubleValue());
// Unplanned reviews
ReviewQuery plannedReviewQuery = ReviewQuery.copy(openReviewQuery).setPlanned();
int plannedReviewsCount = reviewDao.countByQuery(plannedReviewQuery);
context.saveMeasure(CoreMetrics.UNPLANNED_REVIEWS, (double) (openReviewsCount - plannedReviewsCount));
// False positive reviews
ReviewQuery falsePositiveReviewQuery = ReviewQuery.create().setResourceId(resource.getId())
.addResolution(ReviewDto.RESOLUTION_FALSE_POSITIVE);
Integer falsePositiveReviewsCount = reviewDao.countByQuery(falsePositiveReviewQuery);
context.saveMeasure(CoreMetrics.FALSE_POSITIVE_REVIEWS, falsePositiveReviewsCount.doubleValue());
// Violations without a review
int violationsCount = context.getViolations().size();
After Change
// Open reviews
ReviewQuery openReviewQuery = ReviewQuery.create().setResourceId(resource.getId()).addStatus(ReviewDto.STATUS_OPEN)
.addStatus(ReviewDto.STATUS_REOPENED);
Double resourceOpenReviewsCount = reviewDao.countByQuery(openReviewQuery).doubleValue();
Double totalOpenReviewsCount = resourceOpenReviewsCount + getChildrenSum(resource, context, CoreMetrics.ACTIVE_REVIEWS);
context.saveMeasure(CoreMetrics.ACTIVE_REVIEWS, totalOpenReviewsCount);
// Unassigned reviews
ReviewQuery unassignedReviewQuery = ReviewQuery.copy(openReviewQuery).setNoAssignee();
Double ressourceUnassignedReviewsCount = reviewDao.countByQuery(unassignedReviewQuery).doubleValue();
Double totalUnassignedReviewsCount = ressourceUnassignedReviewsCount
+ getChildrenSum(resource, context, CoreMetrics.UNASSIGNED_REVIEWS);
context.saveMeasure(CoreMetrics.UNASSIGNED_REVIEWS, totalUnassignedReviewsCount);
// Unplanned reviews
ReviewQuery plannedReviewQuery = ReviewQuery.copy(openReviewQuery).setPlanned();
Double resourcePlannedReviewsCount = reviewDao.countByQuery(plannedReviewQuery).doubleValue();
Double childrenUnplannedReviewsCount = getChildrenSum(resource, context, CoreMetrics.UNPLANNED_REVIEWS);
context.saveMeasure(CoreMetrics.UNPLANNED_REVIEWS, (resourceOpenReviewsCount - resourcePlannedReviewsCount)
+ childrenUnplannedReviewsCount);
// False positive reviews
ReviewQuery falsePositiveReviewQuery = ReviewQuery.create().setResourceId(resource.getId())
.addResolution(ReviewDto.RESOLUTION_FALSE_POSITIVE);
Double resourceFalsePositiveReviewsCount = reviewDao.countByQuery(falsePositiveReviewQuery).doubleValue();
Double totalFalsePositiveReviewsCount = resourceFalsePositiveReviewsCount
+ getChildrenSum(resource, context, CoreMetrics.FALSE_POSITIVE_REVIEWS);
context.saveMeasure(CoreMetrics.FALSE_POSITIVE_REVIEWS, totalFalsePositiveReviewsCount);
// Violations without a review